package com.lj.infoisland.util;

import java.util.concurrent.ThreadLocalRandom;

public class UniqueRandomStringGenerator {

    /**
     * 生成一个基于时间戳的6位随机字符串。
     *
     * @return 6位随机字符串
     */
    public static String generateUniqueString() {
        // 获取当前时间戳
        long timestamp = System.currentTimeMillis();
        // 将时间戳转换为字符串，并确保至少有6位长
        String timestampStr = String.format("%06d", timestamp).substring(0, 6);
        // 生成随机字符并追加到时间戳字符串后面
        String randomChars = generateRandomChars(6);
        // 将时间戳字符串和随机字符拼接
        return timestampStr + randomChars;
    }

    /**
     * 生成指定长度的随机字符串。
     *
     * @param length 字符串长度
     * @return 随机字符串
     */
    public static String generateRandomChars(int length) {
        String chars = "abcde0123456789";
        StringBuilder randomString = new StringBuilder();
        for (int i = 0; i < length; i++) {
            int index = ThreadLocalRandom.current().nextInt(chars.length());
            randomString.append(chars.charAt(index));
        }
        return randomString.toString();
    }

    // 测试方法
    public static void main(String[] args) {
        String uniqueString = generateUniqueString();
        System.out.println("Generated Unique String: " + uniqueString);
    }
}